﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.UtilidadesWs;
using System.ComponentModel;
using System.ServiceModel.Channels;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.SocialWs;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class PerfilCliente : System.Web.UI.Page
    {
        Utilizadades_WS util = new Utilizadades_WS();
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();
        ObjetoCliente cliente = new ObjetoCliente();
        ObjetoRetornoCliente retornoUpdate;
        UF uf = new UF();
        Cidade cidade = new Cidade();
        BindingList<Cidade> listaCidade;
        BindingList<UF> listaUF;





        protected void Page_Load(object sender, EventArgs e)
        {
            #region carregando dados do cliente

            if (Session["Cliente"] == null)
            {
                Response.Redirect("Login.aspx?Logout=2");
            }
            else
            {
                cliente = webServiceCliente.GetCliente(Convert.ToInt32(Session["Cliente"]));
            }

            if (Page.IsPostBack == false)
            {

                textBoxNomeComleto.Enabled = false;
                textBoxNomeComleto.Text = cliente.Nome;

                textBoxBairro.Enabled = false;
                textBoxBairro.Text = cliente.Bairro;

                textboxCEP.Enabled = false;
                textboxCEP.Text = cliente.CEP;

                textBoxComplemento.Enabled = false;
                textBoxComplemento.Text = cliente.Complemento;

                textBoxCPF.Enabled = false;
                textBoxCPF.Text = cliente.CPF;

                textBoxDataDeNascimento.Enabled = false;
                textBoxDataDeNascimento.Text = cliente.Nascimento;

                textBoxEmail.Enabled = false;
                textBoxEmail.Text = cliente.Email;               

                textBoxNumeroRua.Enabled = false;
                textBoxNumeroRua.Text = cliente.Numero;

                textBoxRua.Enabled = false;
                textBoxRua.Text = cliente.Rua;

                textBoxBairro.Enabled = false;
                textBoxBairro.Text = cliente.Bairro;

                textBoxSenhaAntiga.Enabled = false;

                textBoxSenhaNova.Enabled = false;

                textBoxSenhaNova2.Enabled = false;

                if (cliente.Sexo == true)
                {
                    ComboSexo.SelectedIndex = 0;
                }
                else
                {
                    ComboSexo.SelectedIndex = 1;
                }
                ComboSexo.Enabled = false;

                listaUF = new BindingList<UF>(util.Get_UFs());

                for (int i = 0; i < listaUF.Count; i++)
                {
                    ListItem li = new ListItem();
                    li.Text = listaUF[i].Nome;
                    li.Value = listaUF[i].Id.ToString();
                    DropDownListEstado.Items.Add(li);
                }

                cidade = util.Get_Cidade(cliente.CidadeId);
                uf = util.Get_UF(cidade.UF_Id);
                DropDownListEstado.SelectedValue = uf.Id.ToString();
                DropDownListEstado.Enabled = false;

                listaCidade = new BindingList<Cidade>(util.ListCidadesByEstadoId(cidade.UF_Id));

                for (int i = 0; i < listaCidade.Count; i++)
                {
                    ListItem li = new ListItem();
                    li.Text = listaCidade[i].Label;
                    li.Value = listaCidade[i].Id.ToString();
                    ComboCidade.Items.Add(li);
                }

                ComboCidade.SelectedValue = cidade.Id.ToString();
                ComboCidade.Enabled = false;

                BtSalvarAlteracao.Enabled = false;
                BtSalvarNovaSenha.Enabled = false;
                BtCancelar.Enabled = false;
            }
            #endregion





        }

        protected void btAlerarClick(object sender, EventArgs e)
        {
            textBoxNomeComleto.Enabled = true;
            textBoxBairro.Enabled = true;
            textboxCEP.Enabled = true;
            textBoxComplemento.Enabled = true;
            textBoxCPF.Enabled = true;
            textBoxDataDeNascimento.Enabled = true;
            textBoxEmail.Enabled = true;            
            textBoxNumeroRua.Enabled = true;
            textBoxRua.Enabled = true;
            DropDownListEstado.Enabled = true;
            ComboCidade.Enabled = true;
            BtSalvarAlteracao.Enabled = true;
            ComboSexo.Enabled = true;
            BtCancelar.Enabled = true;

        }

        protected void DropDownListEstado_SelectedIndexChanged(object sender, EventArgs e)
        {
            ComboCidade.Items.Clear();
            listaCidade = new BindingList<Cidade>(util.ListCidadesByEstadoId(Convert.ToInt32(DropDownListEstado.SelectedValue.ToString())));


            for (int i = 0; i < listaCidade.Count; i++)
            {
                ListItem li = new ListItem();
                li.Text = listaCidade[i].Label;
                li.Value = listaCidade[i].Id.ToString();
                ComboCidade.Items.Add(li);

            }

        }

        protected void btSalvarAlteracao(object sender, EventArgs e)
        {
            cliente.Nome = textBoxNomeComleto.Text.Trim();
            cliente.Email = textBoxEmail.Text.Trim();

            if (ComboSexo.SelectedValue.Equals("1"))
            {
                cliente.Sexo = true;
            }
            else
            {
                cliente.Sexo = false;
            }
            cliente.CEP = textboxCEP.Text.Trim();
            cliente.CidadeId = Convert.ToInt32(ComboCidade.SelectedValue.ToString());
            cliente.Complemento = textBoxComplemento.Text.Trim();
            cliente.CPF = textBoxCPF.Text.Trim();
            cliente.Bairro = textBoxBairro.Text.ToString();
            cliente.Nascimento = textBoxDataDeNascimento.Text.Trim();
            cliente.Rua = textBoxRua.Text.Trim();
            cliente.Numero = textBoxNumeroRua.Text.Trim();

            ObjetoRetornoCliente retornoUpdate = webServiceCliente.UpdateCliente(
                cliente.ClienteId,
                cliente.CPF,
                cliente.Nome,
                cliente.Email,
                cliente.Sexo,
                cliente.Nascimento,
                cliente.CEP,
                cliente.Rua,
                cliente.Numero,
                cliente.Bairro,
                cliente.CidadeId,
                cliente.Complemento);

            if (retornoUpdate.Sucesso == true)
            {
                LabelAviso.Text = "Alterado com sucesso.";
                LabelAviso.ForeColor = System.Drawing.Color.Green;
                LabelAviso.Visible = true;
            }
            else
            {
                LabelAviso.Text = retornoUpdate.Menssagem;
                LabelAviso.ForeColor = System.Drawing.Color.Green;
                LabelAviso.Visible = true;

            }
        }

        protected void btAlterarSenhaClick(object sender, EventArgs e)
        {
            textBoxSenhaAntiga.Enabled = true;
            textBoxSenhaNova.Enabled = true;
            textBoxSenhaNova2.Enabled = true;
            BtSalvarNovaSenha.Enabled = true;
            BtCancelar.Enabled = true;
        }

        protected void BtCancelar_Click(object sender, EventArgs e)
        {
            textBoxNomeComleto.Enabled = false;
            textBoxNomeComleto.Text = cliente.Nome;

            textBoxBairro.Enabled = false;
            textBoxBairro.Text = cliente.Bairro;

            textboxCEP.Enabled = false;
            textboxCEP.Text = cliente.CEP;

            textBoxComplemento.Enabled = false;
            textBoxComplemento.Text = cliente.Complemento;

            textBoxCPF.Enabled = false;
            textBoxCPF.Text = cliente.CPF;

            textBoxDataDeNascimento.Enabled = false;
            textBoxDataDeNascimento.Text = cliente.Nascimento;

            textBoxEmail.Enabled = false;
            textBoxEmail.Text = cliente.Email;            

            textBoxNumeroRua.Enabled = false;
            textBoxNumeroRua.Text = cliente.Numero;

            textBoxRua.Enabled = false;
            textBoxRua.Text = cliente.Rua;

            textBoxBairro.Enabled = false;
            textBoxBairro.Text = cliente.Bairro;

            textBoxSenhaAntiga.Enabled = false;

            textBoxSenhaNova.Enabled = false;

            textBoxSenhaNova2.Enabled = false;

            if (cliente.Sexo == true)
            {
                ComboSexo.SelectedIndex = 0;
            }
            else
            {
                ComboSexo.SelectedIndex = 1;
            }
            ComboSexo.Enabled = false;

            listaUF = new BindingList<UF>(util.Get_UFs());

            for (int i = 0; i < listaUF.Count; i++)
            {
                ListItem li = new ListItem();
                li.Text = listaUF[i].Nome;
                li.Value = listaUF[i].Id.ToString();
                DropDownListEstado.Items.Add(li);
            }

            cidade = util.Get_Cidade(cliente.CidadeId);
            uf = util.Get_UF(cidade.UF_Id);
            DropDownListEstado.SelectedValue = uf.Id.ToString();
            DropDownListEstado.Enabled = false;

            listaCidade = new BindingList<Cidade>(util.ListCidadesByEstadoId(cidade.UF_Id));

            for (int i = 0; i < listaCidade.Count; i++)
            {
                ListItem li = new ListItem();
                li.Text = listaCidade[i].Label;
                li.Value = listaCidade[i].Id.ToString();
                ComboCidade.Items.Add(li);
            }

            ComboCidade.SelectedValue = cidade.Id.ToString();
            ComboCidade.Enabled = false;

            BtSalvarAlteracao.Enabled = false;
            BtSalvarNovaSenha.Enabled = false;
            BtCancelar.Enabled = false;


        }

        protected void btSalvarNovaSenhaClick(object sender, EventArgs e)
        {

            if (textBoxSenhaNova.Text.Equals(""))
            {
                LabelAviso.Text = "Senha nova deve ser preenchida.";
                LabelAviso.ForeColor = System.Drawing.Color.Red;
                LabelAviso.Visible = true;
                textBoxSenhaNova.Focus();
                return;
            }
            else
                if (textBoxSenhaNova.Text.Equals(textBoxSenhaNova2.Text))
                {
                    ObjetoRetornoCliente retornoUpdateSenha = webServiceCliente.UpdateSenha(textBoxSenhaAntiga.Text, textBoxSenhaNova.Text, cliente.ClienteId);


                    if (retornoUpdateSenha.Sucesso == true)
                    {
                        LabelAviso.Text = "Senha alterada com sucesso.";
                        LabelAviso.ForeColor = System.Drawing.Color.Green;
                        LabelAviso.Visible = true;
                    }
                    else
                    {
                        LabelAviso.Text = retornoUpdateSenha.Menssagem;
                        LabelAviso.ForeColor = System.Drawing.Color.Red;
                        LabelAviso.Visible = true;
                    }

                }
                else
                {
                    LabelAviso.Text = "Senhas não conferem.";
                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                    LabelAviso.Visible = true;
                    textBoxSenhaNova.Focus();

                }

        }


    }


}
